NGIC API Components Quick Reference Guide
Component Overview
| Component | Description | Base Class | Primary Purpose |
|---|---|---|---|
| base.cfc | Foundation API component | N/A | Core functionality, helper methods, product identification |
| rate.cfc | Rating functionality | base.cfc | Retrieve product rates and fees |
| questions.cfc | Questions API integration | base.cfc | Fetch and validate product-specific questions |
| enrollment.cfc | Enrollment submission | base.cfc | Submit applications and supporting documents |
Key Functions by Component
Base Component (base.cfc)
| Function | Purpose | Key Parameters | Return Value |
|---|---|---|---|
init() | Initialize component | corp_id (optional) | void |
getProductType() | Get NGIC product type | pdid, benefitid (optional) | String - product type |
getProductPlanKey() | Generate plan key | product, state | String - plan key |
getApplicationStatus() | Get application status | applicationID | Struct - status details |
getSpecifiedCareRider() | Get rider level | product | String - rider level |
IsSTM(), IsLM(), etc. | Product type checking | pdid | Boolean |
Rate Component (rate.cfc)
| Function | Purpose | Key Parameters | Return Value |
|---|---|---|---|
getRate() | Get product rates | user, product, dependents, benefitid | Struct with rates and fees |
getSTMTerm() | Get STM term options | user, product, dependents, benefitid | Struct with term details |
validateRateFields() | Validate rating inputs | user, product, dependents, benefitid | Struct with validation results |
validateWeight() | Validate weight input | stPerson | Boolean |
Questions Component (questions.cfc)
| Function | Purpose | Key Parameters | Return Value |
|---|---|---|---|
getProductQuestions() | Get product questions | pdid, product, state, dob, broker_id... | Struct with questions array |
validateProductQuestions() | Validate question answers | Same as above plus form | Struct with validation results |
processProductQuestionAnswers() | Format question answers | form, pdid | JSON string of answers |
Enrollment Component (enrollment.cfc)
| Function | Purpose | Key Parameters | Return Value |
|---|---|---|---|
submitEnrollment() | Submit application | userid, lUPIDs, documenttype, bReview | Struct with policy/application IDs |
submitApplicationPDF() | Submit signed PDF | userid, lUPIDs, applicationId, lPolicyNumbers, pdfContent | Struct with submission results |
validateEnrollmentFields() | Validate enrollment data | user, product, dependents | Struct with validation results |
validateFieldValue() | Validate specific field | field, value, person | Struct with validation result |
Data Flow Overview
[Frontend Form] → [rate.cfc: getRate()] → [questions.cfc: getProductQuestions()] → [Validate Answers] → [enrollment.cfc: submitEnrollment()]
Common Error Handling Pattern
All major functions return a struct containing:
- Processing result (rate, questions, etc.)
bError- Boolean flag indicating success/failureaErrs- Array of error messages when failures occur
Environment Configuration
| Environment | Base URL | Authentication |
|---|---|---|
| Production | https://ngahservices.ngic.com | Basic Auth |
| QA/Dev | https://qa1-ngahservices.ngic.com | Basic Auth |
NGIC Base Component Documentation (base.cfc)
This component serves as the foundation for NGIC API integration, providing core functionality used across other components.
Component Properties
component displayname="NGIC" hint="NGIC API & Helper Utilities"
Key Properties
corp_id- Corporation identifier used to determine API credentialsbroker_id- Broker identifiercredentials- API authentication credentialswebserviceURL- Endpoint URL for API requestsbTestMode- Flag to determine if DEV or PROD environment is used
Major Functions
init()
public void function init(integer corp_id)
Purpose: Initializes the component with appropriate credentials and configurations Parameters:
corp_id- (optional) The corporation ID to use for credentials lookup
Description:
- Sets up credentials for API access based on corporation ID
- Determines if test mode should be used based on environment
- Sets the appropriate webservice URL based on test mode
- Initializes product configurations
initCorpFromProduct()
public void function initCorpFromProduct(required integer pdid)
Purpose: Initializes the component by looking up corporation ID from a product ID Parameters:
pdid- (required) The product ID to use for corporation ID lookup
getProductType()
public string function getProductType(required string pdid, string benefitid="")
Purpose: Returns the NGIC product type based on product ID Parameters:
pdid- (required) The product ID to look upbenefitid- (optional) Benefit ID for additional context
Returns: String representing the product type
getProductPlanKey()
public string function getProductPlanKey(required struct product, required string state)
Purpose: Generates the plan key used in API requests based on product and state Parameters:
product- (required) Product structure containing detailsstate- (required) State code for state-specific plan keys
Returns: String with formatted plan key used in API requests
validateHeightWeight()
public boolean function validateHeightWeight(required struct product, required string state, required string gender, required string height, required string weight, required integer age)
Purpose: Validates if height and weight are within acceptable ranges Parameters:
product- (required) Product structurestate- (required) State code for state-specific rulesgender- (required) Gender codeheight- (required) Height in inchesweight- (required) Weight in poundsage- (required) Age in years
Returns: Boolean indicating if height and weight are valid
getApplicationStatus()
public struct function getApplicationStatus(required integer applicationID)
Purpose: Retrieves application status from NGIC API Parameters:
applicationID- (required) Application ID to check
Returns: Structure with application status details including:
status- Current application statusstatusReason- Reason for current statuspolicyNumber- Policy number if assigned- Error handling fields
Helper Functions
getSpecifiedCareRider()
public string function getSpecifiedCareRider(required struct product)
Purpose: Gets Specified Care Rider level from product custom fields Returns: Specified Care Rider level as string
getEnrollerID()
public string function getEnrollerID(required string brokerid)
Purpose: Maps broker ID to NGIC enroller ID Returns: Enroller ID as string
IsSTM(), IsLM(), IsDental(), IsTermLife(), IsCHG()
Purpose: Check if a product belongs to a specific product line Parameters:
pdid- (required) Product ID to check Returns: Boolean indicating if product belongs to the category
NGIC Rate Component Documentation (rate.cfc)
This component handles rate calculations and term information for NGIC products.
Component Properties
component displayname="NGIC" extends="base" hint="NGIC Rate API Utilities"
Major Functions
getRate()
public struct function getRate(required struct user, required struct product, required array dependents, required string benefitid)
Purpose: Submits a rate request to NGIC API and returns rate details Parameters:
user- (required) User information structureproduct- (required) Product structuredependents- (required) Array of dependent structuresbenefitid- (required) Benefit ID
Returns: Structure containing:
rate- Base rate amountenrollmentFee- Enrollment fee amount if applicableassociationFee- Association fee amount if applicablespecifiedCareFee- Specified Care rider fee if applicablenumberOfDays- Duration of coverageproductCode- Product codeaRates- Array of all rate components from API- Error handling fields
Description:
- Constructs request payload with applicant, product, and rider information
- Sends request to NGIC rating API
- Processes response to extract rates and fees
- Handles error conditions and validation
getSTMTerm()
public struct function getSTMTerm(required struct user, required struct product, required array dependents, required string benefitid)
Purpose: Retrieves available term options for Short-Term Medical products Parameters:
user- (required) User information structureproduct- (required) Product structuredependents- (required) Array of dependent structuresbenefitid- (required) Benefit ID
Returns: Structure containing term details including:
id- Term IDname- Term nameprogram- Program nameisDefault- Boolean indicating if this is default termterminationDate- End date of coverage
validateRateFields()
public struct function validateRateFields(required struct user, required struct product, required array dependents, required string benefitid)
Purpose: Validates all required fields for rate calculation Parameters:
- Same as getRate()
Returns: Structure with validation results:
bError- Boolean indicating if validation errors existaErrs- Array of error messages
Description:
- Validates product-specific fields based on product type
- Validates user demographic information
- Validates dependent information
- Validates agent/broker credentials
validateAge()
public struct function validateAge(required struct user, required array dependents, required string plan)
Purpose: Validates if ages are within acceptable ranges for a plan Parameters:
user- (required) User information structuredependents- (required) Array of dependent structuresplan- (required) Plan name
Returns: Structure with validation results
validateWeight()
public boolean function validateWeight(required struct stPerson)
Purpose: Validates if weight is within acceptable range Parameters:
stPerson- (required) Person information structure
Returns: Boolean indicating if weight is valid
NGIC Questions Component Documentation (questions.cfc)
This component handles external custom questions for NGIC products.
Component Properties
component displayname="NGIC" extends="base" hint="NGIC External Custom Questions API Utilities"
Major Functions
getProductQuestions()
public struct function getProductQuestions(required integer pdid, required struct product, required string state, required date dob, required integer broker_id, any dtEffective, string rateTier, string productCode, string termLengthInDays, string planKeys, string paymentFrequency, boolean bSpouse=0, integer childCount=0, string benefitid="")
Purpose: Retrieves product-specific application questions from NGIC API Parameters:
pdid- (required) Product IDproduct- (required) Product structurestate- (required) State codedob- (required) Date of birthbroker_id- (required) Broker IDdtEffective- (optional) Effective date- Additional parameters for product configuration
Returns: Structure containing:
questions- Array of application questions with format:bCustom- Boolean indicating custom fieldlabel- Question labeldisplayText- Formatted question textcode- Question code (questionId_pdid)questionId- Original question IDdataKey- Data key for response mappingbRequired- Boolean indicating if requiredanswers- Array of possible answers- Product-specific metadata
authorizationText- Authorization text for signature- API request/response details
- Error handling fields
Description:
- Constructs request payload with user and product parameters
- Sends request to NGIC questions API
- Processes response to format questions into standardized format
- Handles error conditions
validateProductQuestions()
public struct function validateProductQuestions(required integer pdid, required struct product, required string state, required date dob, required integer broker_id, any dtEffective, string rateTier, string productCode, string termLengthInDays, string planKeys, string paymentFrequency, boolean bSpouse=0, integer childCount=0, required struct form, string benefitid="")
Purpose: Validates answers to product questions for eligibility Parameters:
- Same as getProductQuestions() plus:
form- (required) Form structure containing question answers
Returns: Structure with validation results:
bError- Boolean indicating if validation errors existaErrs- Array of error messages
Description:
- Gets questions from API
- Checks required questions for answers
- Validates answers against knockout criteria
- Returns error information for ineligible responses
processProductQuestionAnswers()
public string function processProductQuestionAnswers(required struct form, required string pdid)
Purpose: Processes and formats question answers for submission Parameters:
form- (required) Form structure containing question answerspdid- (required) Product ID
Returns: JSON string with formatted answers
mapQuestionDisplayText()
public string function mapQuestionDisplayText(required string displaytext)
Purpose: Maps API question text to display-friendly text Parameters:
displaytext- (required) Original question text
Returns: Formatted question text for display
NGIC Enrollment Component Documentation (enrollment.cfc)
This component handles enrollment submission to NGIC API.
Component Properties
component displayname="NGIC" extends="base" hint="NGIC Enrollment Component Object"
Major Functions
submitEnrollment()
public struct function submitEnrollment(required integer userid, required string lUPIDs, string documenttype="Application", boolean bReview=false)
Purpose: Submits an enrollment application to NGIC API Parameters:
userid- (required) User ID for the applicantlUPIDs- (required) List of User Product IDsdocumenttype- (optional) Document type, defaults to "Application"bReview- (optional) Review mode flag
Returns: Structure containing:
lPolicynumbers- List of policy numbersstPolicynumbers- Structure mapping products to policy numberslApplicationIDs- List of application IDsstApplicationIDs- Structure mapping products to application IDs- API request/response details
- Error handling fields
Description:
- Retrieves member data
- Constructs enrollment request with demographics, coverages, and attestations
- Submits request to NGIC enrollment API
- Processes response to extract policy numbers
- Saves request/response as member documents
submitApplicationPDF()
public struct function submitApplicationPDF(required integer userid, required string lUPIDs, string applicationId="", required string lPolicyNumbers="", string pdfContent="")
Purpose: Submits signed application PDF for existing application Parameters:
userid- (required) User ID for the applicantlUPIDs- (required) List of User Product IDsapplicationId- (optional) Application IDlPolicyNumbers- (required) List of policy numberspdfContent- (optional) Base64-encoded PDF content
Returns: Structure with submission results
validateEnrollmentFields()
public struct function validateEnrollmentFields(required struct user, required struct product, required array dependents)
Purpose: Validates all required fields for enrollment submission Parameters:
user- (required) User information structureproduct- (required) Product structuredependents- (required) Array of dependent structures
Returns: Structure with validation results:
bError- Boolean indicating if validation errors existaErrs- Array of error messages
validateFieldValue()
public struct function validateFieldValue(required string field, required string value, string person="")
Purpose: Validates a specific field value based on field type Parameters:
field- (required) Field name to validatevalue- (required) Field value to validateperson- (optional) Person type label
Returns: Structure with validation results
Helper Functions
Many helper functions for constructing different parts of the enrollment request:
getDemographics()- Constructs demographics portion of requestgetApplicants()- Constructs applicants array for requestgetCoverages()- Constructs coverages array for requestgetBeneficiary()- Constructs beneficiary portion of requestgetPaymentInformation()- Constructs payment information for requestgetPartnerInformation()- Constructs partner information for requestgetAttestationInformation()- Constructs attestation information for requestgetQuestionResponses()- Maps custom question responses for request
These functions transform E123 data structures into the format required by the NGIC API for enrollment submissions.